In computational complexity theory, NP-hardness (non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard problem is the subset sum problem.
<complexity> A set or property of computational {search
problems}. A problem is NP-hard if solving it in {polynomial
time} would make it possible to solve all problems in class
NP in polynomial time.
Some NP-hard problems are also in NP (these are called
"NP-complete"), some are not. If you could reduce an NP
problem to an NP-hard problem and then solve it in polynomial
time, you could solve all NP problems.
See also computational complexity.
[Examples?]
(1995-04-10)
Weak NP-completeness
SET OF COMPUTATIONAL PROBLEMS FOR WHICH THERE IS AN ALGORITHM SOLVING THEM IN POLYNOMIAL TIME IN THE DIMENSION OF THE PROBLEM AND THE MAGNITUDES OF THE DATA INVOLVED (IF GIVEN AS INTEGERS), RATHER THAN THE BASE-TWO LOGARITHMS OF THEIR MAGNITUDES
Weakly NP-complete; Weakly NP-hard
In computational complexity, an NP-complete (or NP-hard) problem is weakly NP-complete (or weakly NP-hard) if there is an algorithm for the problem whose running time is polynomial in the dimension of the problem and the magnitudes of the data involved (provided these are given as integers), rather than the base-two logarithms of their magnitudes. Such algorithms are technically exponential functions of their input size and are therefore not considered polynomial.